home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / you-075a.lha / you-075a / Makefile < prev    next >
Makefile  |  1992-11-19  |  9KB  |  320 lines

  1. # ###################################################################### #
  2. # The FEEL makefile...                                                   #
  3. # ###################################################################### #
  4.  
  5. #
  6. # $Id: Makefile,v 1.8.1.3 1992/06/18 19:45:13 pab Exp $
  7. #
  8.  
  9. ##########################################################################
  10. # Customisation section...                                               #
  11. ##########################################################################
  12.  
  13. # Edit the following for your favourite machine.
  14.  
  15. # Where Src directory lives
  16. BASE = /net/brad/denton_export/denton/You/NewYou
  17.  
  18. # Feel knows about the systems below:
  19. # Stardent RS6000 Gould Sun4 Sun3 Clipper Vax Alliant Meiko 386
  20.  
  21. # Here is some info in case you have something different:
  22. #     WITH_SYSTEMV_SOCKETS - System V IP communication
  23. #     WITH_BSD_SOCKETS     - BSD IP communication (4.3, or see defs.h)
  24. #     WITH_SYSTEMV_SIGNALS - System V signalling
  25. #     WITH_BSD_SIGNALS     - BSD signalling
  26. #     DONT_HAVE_STDLIB_H   - half-hearted ANSI without stdlib.h
  27. #     ALIGN8 - if the machine is fussy about 8 byte alignments, e.g., doubles
  28. #     TRAP_ALL           - vauge attempt to catch segvs, buses, etc. implied by 
  29. #                 MACHINE=SYSTEMV
  30. # Architecture and machine type...
  31. # MACHINE is ANY,BSD or SystemV. 
  32. # ANY is any 'reasonable' architecture --- things that run UNIX, and many others
  33. # BSD is supported on any machine with a *-switch.s file in this 
  34. # directory. See the note in the manual for what it does, and how to port it.
  35. # SystemV is for sun3/4, Stardents and Alliant concentrix machines 
  36. # It ought to work for any UNIX machine that has shared memory primitives 
  37. # and that BSD config. works for.
  38. # BTW, BSD works on MSDOS boxes(!)
  39. # Systems not listed but have worked in the 'ANY' config:
  40. # DEC MIPS (try hacking the ard-switch code for BSD version)
  41.  
  42. # Extra goodies, won't necesarily work
  43. # -DBCI         Want a bytecode interpreter?
  44. # -DLOWTAGINTS        Low tag integers kind of work, 
  45. #            but break the addons code (and maybe other things)
  46. #     READLINE           - used to work. Bit rot may have set in here.
  47.  
  48. # common options
  49.  
  50. # how to optimise your code
  51. STDOFLAGS = # -DDEBUG
  52.  
  53. # everybody needs these
  54. STDFLAGS =  -DWITH_FUDGE 
  55.  
  56. # Stardent
  57. MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  58.         -DDONT_HAVE_STDLIB_H -DBCI -DWITH_SYS_TIMES
  59. OFLAGS =  -O -inline
  60. MACHINE = SYSTEMV # BSD # Can be SYSTEMV
  61. ARCH = ard
  62. CC = cc 
  63. LIBS = -lm
  64.  
  65. # Sun4
  66. #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DBCI -DALIGN8 -DWITH_BSD_SIGNALS
  67. #OFLAGS = -g
  68. #MACHINE = BSD #or SYSTEMV, for the keen
  69. #ARCH = sun4
  70. #CC = gcc
  71. #LIBS = -lm
  72.  
  73. # s4gc (Sun4 with compacting garbage collector)
  74. #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DBCI -DALIGN8 -DWITH_BSD_SIGNALS -DDGC
  75. #OFLAGS = -g
  76. #GCOBJECTS = ../d-gc/gc.o 
  77. #MACHINE = BSD #or SYSTEMV, for the keen
  78. #ARCH = s4gc
  79. #CC = gcc
  80. #LIBS = -lm
  81.  
  82. # RS6000
  83. #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  84. #         -DWITH_SYSTEMV_SIGNALS -DTRAP_ALL -D_ALL_SOURCE
  85. #MACHINE = ANY
  86. #ARCH = any
  87. #CC = xlc
  88. #LIBS = -lm
  89.  
  90. # Gould
  91. #MFLAGS = -DWITH_BSD_SIGNALS \
  92. #        -DDONT_HAVE_STDLIB_H  -DALIGN8
  93. #MACHINE = ANY
  94. #ARCH = any
  95. #CC = gcc
  96. #LIBS = -lm
  97.  
  98.  
  99. # Sun3
  100. #MFLAGS =  -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H   -DDONT_HAVE_STDLIB_H  
  101. #MACHINE = BSD
  102. #ARCH = sun3
  103. #CC = gcc
  104. #LIBS = -lm
  105.  
  106. # Clipper
  107. #MFLAGS = -DWITH_BSD_SIGNALS -DALIGN8 
  108. #MACHINE = BSD
  109. #ARCH = clip
  110. #CC = ncc
  111. #LIBS = /lib/crt0.o
  112.  
  113. # Vax
  114. #MFLAGS = -mg -O -DDONT_HAVE_STDLIB_H -DBCI
  115. #MACHINE = ANY
  116. #ARCH = any
  117. #CC = gcc
  118. #LIBS = -lmg
  119.  
  120. # Alliant
  121. #MFLAGS = -DWITH_BSD_SIGNALS -DWITH_BSD_SOCKETS -DALIGN8
  122. #MACHINE = SYSTEMV
  123. #ARCH = i860
  124. #CC = fxc
  125. #LIBS = -lm
  126.  
  127. # Meiko
  128. # MFLAGS =
  129. # MACHINE = ANY
  130. # CC = mcc
  131. # LIBS = -lm
  132. # EXTRASRCS = 
  133. # EXTRAOBJS =
  134.  
  135. # 386
  136. # ...
  137. #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  138. #        -DDONT_HAVE_STDLIB_H -DBCI
  139. #OFLAGS =  -O 
  140. #MACHINE = BSD
  141. #ARCH = 386
  142. #CC = gcc  #-43
  143. #LIBS = -lm
  144.  
  145. # i860
  146. # Not an alliant? 
  147. # Try MACHINE=BSD, then change the shared memory primitives around
  148. #
  149.  
  150. # ################################################################### #
  151. # Sundry constants                              #
  152. # ################################################################### #
  153. LEX = flex
  154. YACC = bison -y -t
  155.  
  156. # Local module path
  157.  
  158. MODULE_PATH = ${BASE}/Modules/
  159.  
  160. # Semaphoring...
  161. # Hardware semaphores are OK, but
  162. SEMAPHORES = SOFTWARE
  163.  
  164. # Do the business...
  165.  
  166. # ###################################################################### #
  167. # Working section...                                                     #
  168. # ###################################################################### #
  169.  
  170. LOAD_PATH_NAME = FEEL_LOAD_PATH
  171.  
  172. MACHINEABBREV = ${ARCH}
  173. DATE = `date`
  174.  
  175. # invent flags
  176. FLAGS = ${STDFLAGS} ${STDOFLAGS} ${MFLAGS} ${OFLAGS}
  177. # Reader specific sources...
  178.  
  179. READERSOURCES = lex.yy.c y.tab.c alloca.c
  180.  
  181. READEROBJECTS = lex.yy.o y.tab.o alloca.o
  182.  
  183. # Default Elvira sources...
  184.  
  185. ELVIRASOURCES = initelv.c
  186.  
  187. ELVIRAOBJECTS = initelv.o
  188.  
  189. # Garbage collector sources
  190.  
  191. GCOBJECTS = 
  192.  
  193. # Main sources...
  194.  
  195. SOURCES = copyalloc.c copy.c arith.c basic.c chars.c error.c \
  196.       main.c modules.c print.c read.c set.c streams.c \
  197.       table.c vectors.c bootstrap.c lists.c listops.c \
  198.       class.c slots.c ngenerics.c \
  199.           symboot.c modboot.c toplevel.c root.c specials.c \
  200.       calls.c ccc.c macros.c system.c semaphores.c state.c \
  201.       format.c sockets.c sio.c modops.c lamport.c bvecs2.c 
  202.  
  203. OBJECTS = copyalloc.o copy.o arith.o basic.o chars.o error.o \
  204.       main.o modules.o print.o read.o set.o streams.o \
  205.       table.o vectors.o bootstrap.o lists.o listops.o \
  206.       class.o slots.o ngenerics.o  \
  207.           symboot.o modboot.o toplevel.o root.o specials.o \
  208.       calls.o ccc.o macros.o system.o semaphores.o state.o \
  209.       format.o sockets.o sio.o modops.o lamport.o bvecs2.o 
  210.  
  211. HDRS = bootstrap.h   generics.h    modules.h     specials.h    toplevel.h \
  212.     calls.h       global.h      ngenerics.h   state.h       vectors.h \
  213.     ccc.h         lamport.h     objects.h     structs.h     version.h \
  214.     class.h       lex_global.h  root.h        symboot.h     y.tab.h      \
  215.     copy.h        listops.h     runtime.h     syssockets.h    funcalls.h weak.h \
  216.     defs.h        lists.h       semaphores.h  system_p.h    yyfudge.c    allocate.h  \
  217.     error.h       macros.h      sio.h         system_t.h    bvf.h    modops.h garbage.h  \
  218.     format.h      modboot.h     slots.h       table.h    threads.h iset.h sockets.h  \
  219.     interpret.h   bytecodes.h
  220.  
  221. COSOURCES = ${MACHINEABBREV}-switch.s threads.c 
  222.  
  223. COOBJECTS = ${MACHINEABBREV}-switch.o threads.o
  224.  
  225. DISTRIBCO = sun3-switch.s sun4-switch.s ard-switch.s clip-switch.s any-switch.s i860-switch.s \
  226.         386-switch.s Makefile Makefile.386
  227.  
  228. KERNELLISP= defs.em extras0.em initcode.em macros0.em standard0.em sockets.em semaphores.em bitvecs.em
  229.  
  230.  
  231. # Lisp object file
  232.  
  233. LISPOBJECTS = LispSrc/all-lisp.o
  234.  
  235. ISOURCES = interpret.c
  236. IHDRS = bytecodes.h interpret.h
  237. IOBJECTS = interp.o
  238. # Lisp object file
  239.  
  240. LISPOBJECTS = LispSrc/all-lisp.o
  241.  
  242. you:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS} ${IOBJECTS} ${GCOBJECTS}
  243.     -touch you
  244.     rm you
  245.     ${CC}  -o you ${OBJECTS} ${COOBJECTS} ${GCOBJECTS}\
  246.              ${READEROBJECTS} ${IOBJECTS} ${ELVIRAOBJECTS} ${LIBS} 
  247.     echo 
  248.  
  249. proyou:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS}
  250.     ${CC} -p -o proyou ${OBJECTS} ${COOBJECTS} \
  251.                     ${READEROBJECTS} ${ELVIRAOBJECTS} ${LIBS}
  252.     echo 
  253.  
  254. elvira:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS} ${GCOBJECTS}
  255.     ld -r -o feel_elvira.o ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS} ${GCOBJECTS}
  256.     mv feel_elvira.o ../Objs/${ARCH}-elvira.o
  257.     echo 
  258.  
  259. feel_elvira.o:    elvira
  260.  
  261. feel:    feel_elvira.o ${LISPOBJECTS}
  262.     (cd LispSrc; make all-lisp.o)
  263.     ecc -o feel ${LISPOBJECTS}
  264.     echo  
  265.  
  266. reader:        
  267.     ${LEX} comp.lex
  268.     ${YACC} test.yac
  269.  
  270. # Sicko bytecode hacking
  271. # preprocess explicitly, then compile the result, after stripping out
  272. # cpp control codes. Ugh. Makes debugging easier though.
  273. interp.o: interpret.c bytecodes.h interpret.h
  274.     -${CC} -E -c interpret.c ${FLAGS} \
  275.          -DMACHINE_${MACHINE} \
  276.          -DMODULE_PATH=\"${MODULE_PATH}\" \
  277.          -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
  278.          -DSEMAPHORES_${SEMAPHORES} \
  279.          -DMAKE_DATE="\"${DATE}\"" \
  280.           |  grep -v '^#' | /usr/local/bin/indent > interp.c
  281.         cc -c -O -inline interp.c
  282.  
  283. .c.o:
  284.     ${CC} -c $*.c ${FLAGS} \
  285.          -DMACHINE_${MACHINE} \
  286.          -DMODULE_PATH=\"${MODULE_PATH}\" \
  287.          -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
  288.          -DSEMAPHORES_${SEMAPHORES} \
  289.          -DMAKE_DATE="\"${DATE}\"" 
  290.  
  291.  
  292.  
  293.  
  294. version: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} ${HDRS} ${KERNELLISP}
  295.     rcsfreeze 
  296.  
  297. tar: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} \
  298.     ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS}
  299.     tar chf -  ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} \
  300.                ${DISTRIBCO} ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS} \
  301.       | compress > you.tar.Z
  302.  
  303. # Rather assumes that you have X...
  304.  
  305. depend: ${SOURCES} ${HDRS} ${READERSOURCES} ${COSOURCES}
  306.     makedepend -s "# DO NOT DELETE THIS LINE" -- ${FLAGS} -- ${SOURCES} ${COSOURCES} 
  307.  
  308. clean:
  309.     rm ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} you
  310.  
  311.  
  312. ${MACHINE}-coroutine.o:    ${MACHINE}-coroutine.s
  313.         ${CC} -c ${MACHINE}-coroutine.s
  314.  
  315. #if there is odd stuff below this line, remove it and do make depend.
  316. # if make depend fails don't worry. It only gets the header dependencies 
  317. # right.
  318. # DO NOT DELETE THIS LINE
  319.